package com.eclipse.e20200205_集合.ArrayList;


import java.util.ArrayList;
import java.util.ListIterator;

class Student{
	String name;
	int age;
	Student(String name, int age){
		this.name = name;
		this.age = age;
	}
	
//	@Override
//	public String toString() {
//		return "Student [name=" + name + ", age=" + age + "]";
//	}
	
	

//	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Student other = (Student) obj;
		if (age != other.age)
			return false;
		if (name == null) {
			if (other.name != null)
				return false;
		} else if (!name.equals(other.name))
			return false;
		return true;
	}
	

	//做对象的对比，不想让其对比地址，必须得要覆盖equals  根据自己的需求来定义什么时候相等
	
	
}



@SuppressWarnings({ "rawtypes", "unchecked" })
public class 自定义类型的元素_去重 {
	

	public static void main(String[] args) {
		
//		ArrayList list = new ArrayList();
//		list.add(new Student("张三",20));
//		list.add(new Student("张三",20));
//		list.add(new Student("李四",21));
//		System.out.println(list);
//		System.out.println(list.toString());
		Student s1 = new Student("张三",20);
		Student s2 = new Student("张三",20);
		System.out.println(s1);
		s2 = s1;
		System.out.println(s2);
		System.out.println(s1==s2);
		
		
		
//		
//		ArrayList newList = getSingleEle(list);
//		System.out.println(newList);
		
		
		

	}
	
	
	/**
	 * 给我一个集合，把里面重复的元素去除
	 * 返回一个没有重复元素的集合
	 */
	static ArrayList getSingleEle(ArrayList list) {

		// 1.创建一个空的集合
		ArrayList newList = new ArrayList();
		
		// 2.依次取出每一个元素
		ListIterator it = list.listIterator();
		
		while (it.hasNext()) {
			// 3.每取出一个元素，要先判断新集合当中 ，是否已经包含了该 元素
			Object obj = it.next();
			// 4.如果已经包含该元素，就不把该 元素添加到新集合当中，（不包含时才添加到新集合当中）
			if (!newList.contains(obj)) { // contains可以判断一个集合当中是否包含某一个对象
										  // contains 有没有相同的元素（equals） -》Object -> 地址
				// 不包含
				newList.add(obj);
			}
		}
		//System.out.println(newList);
		return newList;
	}

	
	

}
